package com.周阳.代理模式.静态代理;

/**
 * 代理主题角色（Proxy)
 * 代售点：代售点能够卖票，代售点本身是没有票的
 * 只有火车站有票，代售点是代理火车站去卖票
 * 那么有人来代售点买票，其实代售点底层还是调用火车站的方法进行出票。
 * 那么代售点只有聚合火车站对象才能够调用火车站的售票方法
 */
public class ProxyPoint implements SellTickets {

    //声明火车站对象:private不让外部访问---被代理者
    private Trainstation trainstation;

    public ProxyPoint(Trainstation trainstation) {
        this.trainstation = trainstation;
    }

    //代售点卖票
    @Override
    public void sell() {
        /**
         * 在调用火车站卖票之前，我们可以实现方法增强
         */
        System.out.println("前置方法增强>>>>>>扩展代售点收取一些服务费用");
        //代售点卖票其实还是调用火车站卖票方法
        trainstation.sell();
        System.out.println("后置方法增强>>>>>>给用户发送短信");
    }
}

